期間限定!『楽して収入を得る方法!!!』←クリック!!!
VBAで動的にメニューバーを追加します。
追加したメニューバーはブックを閉じると消えます。
動的にメニューバーを追加する
Option Explicit

'ツールバーの名前
Private Const g_TITLE = "テストツールバー"

'ワークブックを閉じる時の処理
Private Sub Auto_Close()
    '変数宣言
    Dim xlAPP As Application
    Dim objBar As CommandBar

    'アプリケーションのオブジェクトを取得
    Set xlAPP = Application
    
    'ツールバーオブジェクトを取得
    'ここでは「テストツールバー」という名前のオブジェクトを取得している
    Set objBar = xlAPP.CommandBars(g_TITLE)
    
    'ツールバーを削除
    objBar.Delete
    
    ' オブジェクトを廃棄
    Set objBar = Nothing
    Set xlAPP = Nothing

End Sub

'ワークブックを開いた時の処理
Private Sub Auto_Open()

    '変数宣言
    Dim xlAPP As Application
    Dim oBar As CommandBar
    Dim oCont As CommandBarControl
    Dim oBtn As CommandBarButton
    Dim varCaption As Variant
    Dim varTipText As Variant
    Dim varOnAction As Variant
    
    Dim nCnt As Integer
    Dim blnFlg As Boolean

    'アプリケーションオブジェクトの取得
    Set xlAPP = Application
    
    'ボタンのタイトルを設定
    varCaption = Array("@テスト", "Aテスト", "Bテスト")
    
    'ボタンにマウスが通過したときに表示されるテキスト
    varTipText = Array("テスト1", "テスト2", "テスト3")
    
    'ボタンを押下したときに呼び出すマクロ(関数名)
    varOnAction = Array("BTN_1", "BTN_2", "BTN_3")

    ' ツールバーを追加する
    Set oBar = xlAPP.CommandBars.Add(Name:=g_TITLE, Position:=msoBarTop)
    
    'フラグの初期値設定
    blnFlg = False
    
    ' ボタンを3つ追加する
    For nCnt = 0 To 2
        ' まずボタンを指定してコントロールを追加
        Set oCont = oBar.Controls.Add(Type:=msoControlButton)
        
        'ボタンの境界を設定(1番目はボタンの境界をなし)
        oCont.BeginGroup = blnFlg
        
        'CommandBarButtonオブジェクトを取得
        Set oBtn = oCont
        oBtn.Style = msoButtonCaption
        oBtn.Caption = varCaption(nCnt)
        oBtn.TooltipText = varTipText(nCnt)
        oBtn.OnAction = varOnAction(nCnt)
        
        ' 2番目以降はボタンの境界を設定
        blnFlg = True
    Next
    
    'ツールバーを表示する
    oBar.Visible = True
    
    'ツールバーを非表示にできなくする
    oBar.Protection = msoBarNoChangeVisible
    
    '表示位置を一行目にする
    ActiveWindow.ScrollRow = 1

    ' オブジェクトを廃棄
    Set oBtn = Nothing
    Set oCont = Nothing
    Set oBar = Nothing
    Set xlAPP = Nothing

End Sub

'ボタン1を押した時の処理
Private Sub BTN_1()
    MsgBox "ボタン1"
End Sub

'ボタン2を押した時の処理
Private Sub BTN_2()
    MsgBox "ボタン2"
End Sub

'ボタン3を押した時の処理
Private Sub BTN_3()
    MsgBox "ボタン3"
End Sub
実行後


補足
「Private Sub Auto_Open()」、「Private Sub Auto_Close()」についてですが、
この名前で関数を作成すると、それぞれブックを開いた時、閉じる時に
実行されます。
アフィリエイトをはじめるなら、こちらから登録できます。

DPアフィリエイトで高額収入 AFJ21(携帯・PCアフィリエイトサイト) アフィリエイト


b-click


期間限定!『楽して収入を得る方法!!!』←クリック!!!

このサイトについてのお問い合わせはこちら